package org.come.until;

import org.come.entity.Goodstable;

public class RefiningUtil {
    // 打造11-16级装备 我要打造普通装备
    // 我要升级神兵
    // 我要合成炼妖石
    // 我要培养饰品
    // 我要重铸饰品
    // 炼化装备
    // 我要上神兵石
    // 炼化神兵
    // 我要培养护身符
    // 我要重铸护身符
    // 炼化仙器
    // 培养彩晶石
    /** 炼化神兵 炼化仙器 炼化装备 */
    /** 根据类型获取第n个格子是否能点击上去 */
    public static boolean DJ(String type, int i, Goodstable good) {
        switch (type) {
            case "炼化装备":// 0普通装备1九彩云龙珠2血玲珑3内丹精华
                if (i == 0) {
                    return Goodtype.OrdinaryEquipment(good.getType());
                }
                if (i == 1) {
                    return good.getType() == 498;
                }
                if (i == 2) {
                    return good.getType() == 499;
                }
                if (i == 3) {
                    return good.getType() == 497;
                }
                return false;
            // 新增加巫铸

//            case "巫铸":// 0普通装备1九彩云龙珠2九幽魄 else
//                if (i == 0) {
//                    return Goodtype.OrdinaryEquipment(good.getType());
//                }
//                if (i == 1) {
//                    return good.getType() == 498;
//                }
//                 if (i == 2) {
//                    return good.getType() == 4981;
//                }
//                else if (i == 3) {
//                    return good.getType() == 4982;
//                }
//                else if (i == 4) {
//                    return good.getType() == 4983;
//                }
//                else if (i == 5) {
//                    return good.getType() == 4984;
//                }
//                else if (i == 6) {
//                    return good.getType() == 4985;
//                }
//                return false;

//            case "巫铸-鬼":// 0普通装备1九彩云龙珠2九幽魄
//                if (i == 0) {
//                    return Goodtype.OrdinaryEquipment(good.getType());
//                }
//                if (i == 1) {
//                    return good.getType() == 4981;
//                }
//                if (i == 2) {
//                    return good.getType() == 498;
//                }
//                return false;
//
//            case "巫铸-仙":// 0普通装备1九彩云龙珠2云织锦
//                if (i == 0) {
//                    return Goodtype.OrdinaryEquipment(good.getType());
//                }
//                if (i == 1) {
//                    return good.getType() == 4982;
//                }
//                if (i == 2) {
//                    return good.getType() == 498;
//                }
//                return false;
//
//            case "巫铸-魔":// 0普通装备1九彩云龙珠2吼山石
//                if (i == 0) {
//                    return Goodtype.OrdinaryEquipment(good.getType());
//                }
//                if (i == 1) {
//                    return good.getType() == 4983;
//                }
//                if (i == 2) {
//                    return good.getType() == 498;
//                }
//                return false;
//
//
//            case "巫铸-龙":// 0普通装备1九彩云龙珠2龙漓珠
//                if (i == 0) {
//                    return Goodtype.OrdinaryEquipment(good.getType());
//                }
//                if (i == 1) {
//                    return good.getType() == 4984;
//                }
//                if (i == 2) {
//                    return good.getType() == 498;
//                }
//                return false;
//
//
//            case "巫铸-人":// 0普通装备1九彩云龙珠2世间尘
//                if (i == 0) {
//                    return Goodtype.OrdinaryEquipment(good.getType());
//                }
//                if (i == 1) {
//                    return good.getType() == 4985;
//                }
//                if (i == 2) {
//                    return good.getType() == 498;
//                }
//                return false;

            // 新增加巫铸
            case "炼化仙器":
                if (i == 0) {
                    return Goodtype.GodEquipment_xian(good.getType())||Goodtype.GodEquipment_Ding(good.getType());
                }
                if (i == 1) {
                    return Goodtype.GodEquipment_xian(good.getType())||Goodtype.GodEquipment_Ding(good.getType())|| good.getType() == 7005;
                }
                return false;
            case "炼化神兵":
                if (i == 0) {
                    return Goodtype.GodEquipment_God(good.getType());
                }
                if (i == 1) {
                    return good.getType() == 191;
                }
                return false;
            case "普通打造":// 0普通装备1矿石
                if (i == 0) {
                    return Goodtype.OrdinaryEquipment(good.getType());
                }
                if (i == 1) {
                    return Goodtype.Ore(good.getType());
                }
                return false;
            case "巫铸":// 0普通装备1矿石
                if (i == 0) {
                    return Goodtype.OrdinaryEquipment(good.getType());
                }
                if (i == 1) {
                    return Goodtype.Ore(good.getType());
                }
                if (i == 2) {
                    return good.getType() == 499;
                }
                if (i == 3) {
                    return Goodtype.Wuzhu(good.getType());
                }
                return false;
        }
        return false;
    }

    /** 检测公式 */
    public static String detection(Goodstable[] goods, int type) {
        int size = 0;
        int p = -1;
        for (int i = 0; i < goods.length; i++) {
            if (goods[i] != null) {
                size++;
                p = i;
            }
        }
        if (p + 1 != size) {
            return "?";
        }
        if (type == 1) {
            if (size == 6 && goods[1].getType() == 497 && goods[2].getType() == 499
                    && goods[3].getType() == 498 && goods[4].getType() == 498 && goods[5].getType() == 498
                    && (Goodtype.OrdinaryEquipment(goods[0].getType()) || Goodtype.Amulet2(goods[0].getType())|| Goodtype.isPalEquip(goods[0].getType()))) {
                return "炼化装备";
            }
//            // 新增加巫铸
////            if (size == 6 && (goods[1].getType() == 4981 || goods[1].getType() == 4982 || goods[1].getType() == 4983 || goods[1].getType() == 4984 || goods[1].getType() == 4985)&& goods[2].getType() == 498
////                    && goods[3].getType() == 498 && goods[4].getType() == 498 && goods[5].getType() == 498
////                    && (Goodtype.OrdinaryEquipment(goods[0].getType()) || Goodtype.Amulet2(goods[0].getType())|| Goodtype.isPalEquip(goods[0].getType()))) {
////                return "巫铸";
////            }
//
//            if (size == 6 && goods[1].getType() == 4981 && goods[2].getType() == 498
//                    && goods[3].getType() == 498 && goods[4].getType() == 498 && goods[5].getType() == 498
//                    && (Goodtype.OrdinaryEquipment(goods[0].getType()) || Goodtype.Amulet2(goods[0].getType())|| Goodtype.isPalEquip(goods[0].getType()))) {
//                return "巫铸-鬼";
//            }
//
//            if (size == 6 && goods[1].getType() == 4982 && goods[2].getType() == 498
//                    && goods[3].getType() == 498 && goods[4].getType() == 498 && goods[5].getType() == 498
//                    && (Goodtype.OrdinaryEquipment(goods[0].getType()) || Goodtype.Amulet2(goods[0].getType())|| Goodtype.isPalEquip(goods[0].getType()))) {
//                return "巫铸-仙";
//            }
//
//            if (size == 6 && goods[1].getType() == 4983 && goods[2].getType() == 498
//                    && goods[3].getType() == 498 && goods[4].getType() == 498 && goods[5].getType() == 498
//                    && (Goodtype.OrdinaryEquipment(goods[0].getType()) || Goodtype.Amulet2(goods[0].getType())|| Goodtype.isPalEquip(goods[0].getType()))) {
//                return "巫铸-魔";
//            }
//
//            if (size == 6 && goods[1].getType() == 4984 && goods[2].getType() == 498
//                    && goods[3].getType() == 498 && goods[4].getType() == 498 && goods[5].getType() == 498
//                    && (Goodtype.OrdinaryEquipment(goods[0].getType()) || Goodtype.Amulet2(goods[0].getType())|| Goodtype.isPalEquip(goods[0].getType()))) {
//                return "巫铸-龙";
//            }
//
//            if (size == 6 && goods[1].getType() == 4985 && goods[2].getType() == 498
//                    && goods[3].getType() == 498 && goods[4].getType() == 498 && goods[5].getType() == 498
//                    && (Goodtype.OrdinaryEquipment(goods[0].getType()) || Goodtype.Amulet2(goods[0].getType())|| Goodtype.isPalEquip(goods[0].getType()))) {
//                return "巫铸-人";
//            }
            if (size == 2 && Goodtype.Ore(goods[1].getType()) && Goodtype.OrdinaryEquipment(goods[0].getType())) {
                return "普通打造";
            }
            if (size == 4 && Goodtype.Ore(goods[1].getType()) && Goodtype.OrdinaryEquipment(goods[0].getType()) && goods[2].getType() == 499 && Goodtype.Wuzhu(goods[3].getType())) {
                return "巫铸";
            }

            // 新增加巫铸
            if (size == 2 && Goodtype.GodEquipment_xian(goods[0].getType())  && (Goodtype.GodEquipment_xian(goods[1].getType()) || goods[1].getType() == 7005 || goods[1].getType() == 7010)) {
                return "炼化仙器";
            }
            if (size == 2 && Goodtype.GodEquipment_Ding(goods[0].getType())  && (Goodtype.GodEquipment_Ding(goods[1].getType()) || goods[1].getType() == 7005 || goods[1].getType() == 7010)) {
                return "炼化仙器";
            }
            if (size == 2 && Goodtype.GodEquipment_God(goods[0].getType()) && goods[1].getType() == 191) {
                return "炼化神兵";
            }
            if (size == 2 && Goodtype.isPalEquip(goods[0].getType()) && goods[1].getType() == 500) {
                return isUpOrC(AccessSuitMsgUntil.getPalEquipAgree(goods[0].getValue(), "等级").split("=")[1], goods[1].getValue().split("=")[1]);
            }
            if (size == 2 && Goodtype.isPalEquip(goods[0].getType())  && (Goodtype.isPalEquip(goods[1].getType()) || goods[1].getType() == 7511)) {
                return "装备培养";
            }
        } else if (type == 2) {
            if (size == 2 && Goodtype.Accessories(goods[0].getType())
                    && (Goodtype.Accessories(goods[1].getType()) || goods[1].getType() == 1008)) {
                return "一键培养";
            }
            if (size == 2 && Goodtype.Accessories(goods[0].getType()) && Goodtype.Ore(goods[1].getType())) {
                return "佩饰重铸";
            }
            if (size == 2 && Goodtype.Amulet2(goods[0].getType()) && Goodtype.Amulet2(goods[1].getType())) {
                return "护身符培养";
            }
            if (size == 2 && Goodtype.Amulet2(goods[0].getType()) && Goodtype.Ore(goods[1].getType())) {
                return "护身符重铸";
            }
            if (size == 2 && goods[0].getType() == 729 && goods[1].getType() == 729) {
                return "彩晶石培养";
            }
            if (size == 4 && goods[0].getType() == 8889 && goods[1].getType() == 8889 && goods[2].getType() == 8889
                    && goods[3].getType() == 8889) {
                return "秘石合成";
            }
            if (size == 3 && Goodtype.Accessories(goods[0].getType()) && goods[1].getGoodsname().equals("补天神石")&&goods[2].getGoodsname().equals("血玲珑")){
                return "点翠";
            }
            if (size == 2 && Goodtype.Accessories(goods[0].getType()) && goods[1].getGoodsname().equals("翠玉")){
                return "点翠强化";
            }


        }
        return "?";
    }

    /**
     *
     *
     * @param
     * @param
     *            *类型是1 是装备升级 类型是2的装备重铸
     */
    public static String isUpOrC(String lvlStr, String goodlvlStr) {
        int lvl = Integer.parseInt(lvlStr);
        int goodlvl = Integer.parseInt(goodlvlStr);
        if (lvl <= 5) {
            if (lvl + 5 == goodlvl) {
                return "装备升级";
            } else if (lvl + 4 == goodlvl) {
                return "装备重铸";
            }
        } else if (lvl == 6) {
            if (goodlvl == 10) {
                return "装备重铸";
            }
        }
        return "?";
    }
}
